package com.smartcommunity.dao.tag;

import com.smartcommunity.entity.tag.ObjectTag;
import com.smartcommunity.entity.tag.Tag;
import com.smartcommunity.entity.tag.TagGroup;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Copyright: Copyright (c) 2019
 * Company:
 *
 * @author WangShang
 * @version V1.0
 * @date @date  2019-07-02
 */
public interface TagDao {

   /**
    * 获取标签群组列表
    * @return
     */
   List<TagGroup> getTagGroupList();

   /**
    * 获取标签列表
    * @return
     */
   List<Tag> getTagList(Map<String,Object> queryMap);

   List<Tag> getALLTag();

   Integer getTagListCount(Map<String,Object> queryMap);

   void insertTag(Tag tag);

   void updateTag(Tag tag);

   void deleteTag(@Param("id") Integer id);

   void deleteTags(@Param("ids") String ids);

   void deleteObjectTag(Map<String,Object> queryParam);

   void deleteObjectTagList(List<ObjectTag> list);

   int queryCountByTagId(int tagId);

   Tag getTagById(@Param("id") Integer id);

   List<Tag> getObjectTag(Map<String,Object> queryParam);

   List<Tag> getObjectTagEx(Map<String,Object> queryParam);

   void addObjectTag(@Param("dataList") List<ObjectTag> dataList);

   Tag queryByName(@Param("tagName")String tagName);

    List<Tag> countByTag(Map<String,Object> queryMap);

   List<Tag> getPeopleTag(Map<String, Object> queryParam);
}
